#include <iostream>
#include <gtest/gtest.h>
#include <unordered_map>

class MyTest : public testing::Test
{
public:
    static void SetUpTestCase()
    {
        // 在这里初始化全局测试所需要的数据
        std::cout << "所有单元测试开始前，初始化整个测试环境" << std::endl;
    }
    void SetUp() override
    {
        // 在这里可以初始化每个独立单元自己的数据
        std::cout<<"单元测试初始化"<<std::endl;
        _mymap.insert(std::make_pair("hello", "你好"));
        _mymap.insert(std::make_pair("hellod", "好"));
    }
    void TearDown()override
    {
        std::cout<<"单元测试清理"<<std::endl;
        _mymap.clear();
    }
    static void TearDownTestCase()
    {
        // 清理全局数据
        std::cout << "所有单元测试结束后，进行环境清理" << std::endl;
    }

public:
    std::unordered_map<std::string, std::string> _mymap;
};

TEST_F(MyTest, test1)
{
    _mymap.insert(std::make_pair("herllo", "你好"));
    ASSERT_EQ(_mymap.size(), 3);
}

TEST_F(MyTest, test2)
{
    ASSERT_EQ(_mymap.size(), 3);
}

int main(int argc, char *argv[])
{
    testing::InitGoogleTest(&argc, argv);
    RUN_ALL_TESTS();
    return 0;
}